<!DOCTYPE html>
<html>
<!--
Copyright The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<head>
  <title>goog.ui.SubMenu</title>
  <script src="../base.js"></script>
  <script>
    goog.require('goog.debug');
    goog.require('goog.positioning.Corner');
    goog.require('goog.ui.Menu');
    goog.require('goog.ui.SubMenu');
    goog.require('goog.ui.PopupMenu');
  </script>
  <link rel="stylesheet" href="css/demo.css">
  <link rel="stylesheet" href="../css/menu.css">
  <link rel="stylesheet" href="../css/menuitem.css">
  <link rel="stylesheet" href="../css/menuseparator.css">
  <link rel="stylesheet" href="../css/submenu.css">
</head>
<body>
  <h1>goog.ui.SubMenu</h1>
  <p>Demonstration of different hierarchical menus which share its submenus.
  A flyweight pattern demonstration for submenus.</p>
  <p><button id="button">Open menu</button></p>


  <div id="sharedMenu" class="goog-menu">
    <div class="goog-menuitem">Google</div>
    <div class="goog-menuitem">Yahoo</div>
    <div class="goog-menuitem">MSN</div>
    <hr>
    <div class="goog-menuitem">Bla...</div>
  </div>

  <script>

    // Popup menu with sub menus
    var menu = new goog.ui.PopupMenu();
    menu.attach(document.getElementById('button'),
        goog.positioning.Corner.BOTTOM_LEFT,
        goog.positioning.Corner.TOP_LEFT);

    var sharedDecoratedSubmenu = new goog.ui.Menu();
    sharedDecoratedSubmenu.decorate(document.getElementById('sharedMenu'));

    var sharedSubmenu = new goog.ui.Menu();
    var sa = new goog.ui.SubMenu('Shared sub one');
    sa.addItem(new goog.ui.MenuItem('Shared sub sub one'));
    sa.addItem(new goog.ui.MenuItem('Shared sub sub two'));
    sharedSubmenu.addItem(sa);
    sharedSubmenu.addItem(new goog.ui.MenuItem('Shared sub two'));
    sharedSubmenu.addItem(new goog.ui.MenuItem('Shared sub three'));
    var sb = new goog.ui.SubMenu('Shared sub four');
    sb.setMenu(sharedDecoratedSubmenu);
    sharedSubmenu.addItem(sb);

    var a = new goog.ui.SubMenu('Zero');
    var b = new goog.ui.SubMenu('Ten');
    var c = new goog.ui.SubMenu('Twenty');
    var d = new goog.ui.SubMenu('Thirty');
    var e = new goog.ui.SubMenu('Has shared one');
    var f = new goog.ui.SubMenu('Has shared two');
    var g = new goog.ui.SubMenu('Has shared three');
    var h = new goog.ui.SubMenu('Has decorated shared one');
    var i = new goog.ui.SubMenu('Has decorated shared two');
    var j = new goog.ui.SubMenu('Has decorated shared three');

    e.setMenu(sharedSubmenu);
    f.setMenu(sharedSubmenu);
    g.setMenu(sharedSubmenu);

    h.setMenu(sharedDecoratedSubmenu);
    i.setMenu(sharedDecoratedSubmenu);
    j.setMenu(sharedDecoratedSubmenu);

    var aa = new goog.ui.SubMenu('One')
    aa.setEnabled(false);
    aa.addItem(new goog.ui.MenuItem('Add'));
    aa.addItem(new goog.ui.MenuItem('Subtract'));
    aa.addItem(new goog.ui.MenuItem('Multiply'));

    a.addItem(aa);
    a.addItem(new goog.ui.MenuItem('Two'));
    a.addItem(new goog.ui.MenuItem('Three'));
    a.addItem(new goog.ui.MenuItem('Four'));

    b.addItem(new goog.ui.MenuItem('Eleven'));
    b.addItem(new goog.ui.MenuItem('Thirteen'));
    b.addItem(new goog.ui.MenuItem('Fourteen'));
    b.addItem(new goog.ui.MenuItem('Fifteen'));

    c.addItem(new goog.ui.MenuItem('Twenty-one'));


    var cb = new goog.ui.SubMenu('Twenty-Two')
    cb.addItem(new goog.ui.MenuItem('Add'));
    cb.addItem(new goog.ui.MenuItem('Subtract'));
    cb.addItem(new goog.ui.MenuItem('Multiply'));
    var cbd = new goog.ui.SubMenu('More')
    cbd.addItem(new goog.ui.MenuItem('Square Root'));
    cbd.addItem(new goog.ui.MenuItem('Power'));
    cbd.addItem(new goog.ui.MenuItem('Square'));
    cb.addItem(cbd);
    c.addItem(cb);

    c.addItem(new goog.ui.MenuItem('Twenty-three'));
    c.addItem(new goog.ui.MenuItem('Twenty-four'));

    d.addItem(new goog.ui.MenuItem('Thirty-one'));
    d.addItem(new goog.ui.MenuItem('Thirty-two'));
    d.addItem(new goog.ui.MenuItem('Thirty-three'));
    d.addItem(new goog.ui.MenuItem('Thirty-four'));

    menu.addItem(a);
    menu.addItem(new goog.ui.MenuItem('AaAaAaAaAaAa'));
    menu.addItem(new goog.ui.MenuItem('BbBbBbBbBbBb'));
    menu.addItem(b);
    menu.addItem(c);
    menu.addItem(d);

    menu.addItem(e);
    menu.addItem(f);
    menu.addItem(g);

    menu.addItem(h);
    menu.addItem(i);
    menu.addItem(j);

    var ccc = new goog.ui.MenuItem('CcCcCcCcCcCc');
    ccc.setEnabled(false);
    menu.addItem(ccc);
    menu.addItem(new goog.ui.MenuItem('DdDdDdDdDdDd'));


    menu.render();
    menu.getElement().id = 'foo';
    goog.events.listen(menu, 'action', function(e) {
      var action = e.target.getCaption();
      alert(action);
    });

  </script>

</body>
</html>
